package com.mentalhealthplatform.teacherV2.repository;

import com.mentalhealthplatform.appModels.FamilyMessage;
import com.mentalhealthplatform.appModels.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.UUID;

/**
 * 家长信息仓库接口，用于处理家长信息相关的数据库操作。
 */
@Repository
public interface FamilyMessageRepositoryV2 extends JpaRepository<FamilyMessage, Long> {
    /**
     * 根据关键字查询家庭信息，包括父母姓名、电话号码和家庭地址等字段。
     *
     * @param keyword 查询的关键字
     * @return 匹配关键字的家庭信息列表
     */
    @Query("SELECT fm FROM FamilyMessage fm JOIN fm.student s WHERE " +
           "s.name LIKE %:keyword% OR fm.fatherName LIKE %:keyword% OR " +
           "fm.motherName LIKE %:keyword% OR fm.fatherPhone LIKE %:keyword% OR " +
           "fm.motherPhone LIKE %:keyword% OR fm.homeAddress LIKE %:keyword%")
    List<FamilyMessage> findByKeyword(@Param("keyword") String keyword);

    /**
     * 根据学生对象查询家庭信息。
     *
     * @param student 学生对象
     * @return 该学生对应的家庭信息列表
     */
    List<FamilyMessage> findByStudent(Student student);

    /**
     * 根据学生ID查询家庭信息。
     *
     * @param studentId 学生的UUID
     * @return 该学生ID对应的家庭信息列表
     */
    List<FamilyMessage> findByStudentId(UUID studentId);
}